//
//  ViewController.swift
//  swift-变量和常亮
//
//  Created by hanbo on 2018/10/24.
//  Copyright © 2018年 hanbo. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
//        demo()
//        demo1()
//        demo2()
//        demo3()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    func demo3()  {
        
        // 关于 var 和 let 的选择.
        // 不可变的会更安全,开发的时候,通常都先使用let,在需要变化的时候,再改成var
        
        // Variable 'y' was never mutated; consider changing to 'let' constant
        // 变量y从来没有被修改,建议改为`let`
        let x = 10
        let y = 20
        
        print(x+y)
    }
    
    func demo2()  {
        // 如果需要制定变量/常量的类型,也可以使用 let x:类型 = 值
        // 提示:在swift开发中,极少使用直接制定类型,通常都是自动推导!
        let x:Double = 10
        let y = 100.5
        print(x+y)
    }
    
    // 1.定义变量 var / 常量 let
    // 常量 let,定义之后,不能修改
    // 2.自动推到,变量/常量的类型,会根据右侧的代码执行结果,推到对应的类型
    // 热键:option + click
    // 3.在swift不同类型的数据之间,不允许直接运算, 不会做默认的隐式的转换,所有的类型确定,都要由程序员负责!
    // 4.在swift中,不存在基本数据类型,都是结构体
    
    func demo1() {
    
        let x = 10
        let y = 10.5
        
        //1.将y转换成整数
        // swift中,Int() `结构体`的构造函数
        print(x + Int(y))
        //2.将x转换成double
        print(Double(x) + y)
    }
    
    func demo() {
       
        
        // 整数:int(OC 中 NSInterger 类似)
        var x = 10
        x = 20
    
        // 小数:double 精度更高(OC 中CGFloat类似)
        let  y = 10.5
        
        let v = UIView()
        print(x)
        print(y)
        print(v)
        
    }


}

